import { Message } from 'element-ui'


// 获取点击的经纬度
// export function getLnglat(e) {
//   return e.lnglat.lng + ',' + e.lnglat.lat
// }

// 当前经纬度
var lnglat = []
// 路线
var walking = null

// 城市定位
export function location(map) {
  var geolocation = new AMap.Geolocation({
    enableHighAccuracy: true, //是否使用高精度定位，默认:true
    timeout: 2000, //超过10秒后停止定位，默认：5s
    buttonPosition: "RB", //定位按钮的停靠位置
    buttonOffset: new AMap.Pixel(10, 20), //定位按钮与设置的停靠位置的偏移量，默认：Pixel(10, 20)
    zoomToAccuracy: false, //定位成功后是否自动调整地图视野到定位点
    showCircle: false,//是否显示定位精度圈
    circleOptions: {//定位精度圈的样式
      // strokeOpacity: 0,  //线透明度
      // strokeWeight: 350,  //线粗细度
      // fillColor: "#3968f1",  //填充颜色    #cecfd1
      // fillOpacity: 0.2, //填充透明度
      // clickable: true,
      // bubble:true,
    }
  });
  map.addControl(geolocation);
  geolocation.getCurrentPosition((status, result) => {
    if (status == "complete") {
      lnglat[0] = result.position.lng
      lnglat[1] = result.position.lat
    } else {
      Message({ type: 'warning', message: '获取位置失败，由于众多浏览器（Google）已不再支持非安全域的定位请求，请升级您的站点到HTTPS' })
    }
  });
}

// 当前位置——圆（没有用到）
/**
export function currentLocation(map) {
  // 构造矢量圆形
  var circle = new AMap.Circle({
    center: new AMap.LngLat("116.403322", "39.920255"), // 圆心位置
    radius: 10,  //半径
    strokeColor: "#F33",  //线颜色
    strokeOpacity: 1,  //线透明度
    strokeWeight: 30,  //线粗细度
    fillColor: "#ee2200",  //填充颜色
    fillOpacity: 0.2 //填充透明度
  });
  // 将以上覆盖物添加到地图上
  // 单独将点标记添加到地图上
  map.add(circle);
}
 */

// 停车场图标
export function parkingMarker(map, parkingList) {
  parkingList.forEach(item => {
    item.coord = item.coord.split(',')
    // 创建图标
    let marker = new AMap.Marker({
      icon: require('@/assets/images/parking_location_img.png'),
      position: item.coord,
      offset: new AMap.Pixel(-35, -70)
    });
    marker.setMap(map);
    let text = createText(item)
    text.setMap(map);
    text.dom.id = 'text_id'
    text.dom.setAttribute('text_id', item.id)
    // 绑定点击事件（当前位置距离停车场的位置路线规划）
    text.on('click', () => {
      walk(map, item, text)
    });
    
  });
}

// 创建纯文本标记
function createText(item) {
  return new AMap.Text({
    text: item.carsNumber || '0',
    anchor: 'bottom-left', // 设置文本标记锚点
    cursor: 'pointer',
    offset: new AMap.Pixel(-22, -17),
    style: {
      'border-radius': '50%',
      'background-color': '#34393f',
      'width': '40px',
      'height': '40px',
      'line-height': '40px',
      'text-align': 'center',
      'font-size': '18px',
      'border': 'none',
      'color': '#fff'
    },
    position: item.coord
  });
}

// 当前位置距离停车场的位置路线规划（步行导航）
function walk(map, item, text) {
  // 步行导航
  if (!walking) {
    walking = new AMap.Walking({
      map: map,
      // 隐藏终点起点图标
      hideMarkers: true,
    });
  }
  //根据起终点坐标规划步行路线
  walking.search(lnglat, item.coord, (status, result) => {
    if (status === 'complete') {
      console.log('绘制步行路线完成');
      // showParkingInfo(result, text)
    } else {
      Message({ type: 'warning', message: '获取路线规划失败' })
    }
  });
}

// 停车场粗略信息（没有展示，有问题解决不了就不展示了）
function showParkingInfo(result, text) {
  console.log(result);
  text.setText(text.getText() + '  辆车 | 距离你' + (result.routes[0].distance / 1000).toFixed(2) + '公里')
  text.setStyle({
    'border-radius': '20px',
    'background-color': '#34393f',
    'width': '190px',
    'height': '40px',
    'line-height': '40px',
    'text-align': 'left',
    'font-size': '16px',
    'border': 'none',
    'color': '#fff',
    'padding': '0px 15px'
  })
}
